package com.demo.chainOfResponsibility14;

/**
 * 我们将使用开头那个请假的实例。请假：3天以下辅导员签字、3到5天系主任签字、6到10天院长签字、
 * 11-15天校长签字、15天以上不允签字。
 */
public class Client {
    public static void main(String[] args) {
        // 辅导员
        Leader instructor = new Instructor("陈毅");
        Leader departmentHead = new DepartmentHead("王明");    //系主任
        Leader dean = new Dean("张强");      //院长
        Leader president = new President("王晗");     //校长
        
        instructor.setSuccessor(departmentHead);       //辅导员的后续者是系主任
        departmentHead.setSuccessor(dean);             //系主任的后续者是院长
        dean.setSuccessor(president);                  //院长的后续者是校长
        
        //请假3天的请假条
        LeaveNode leaveNode1 = new LeaveNode("张三", 3);
        // 请假条首先会由 辅导员处理，然后往后传递处理
        instructor.handleRequest(leaveNode1);     
        
        //请假9天的请假条
        LeaveNode leaveNode2 = new LeaveNode("李四", 9);
        // 请假条首先会由 辅导员处理，然后往后传递处理
        instructor.handleRequest(leaveNode2);
        
        //请假15天的请假条
        LeaveNode leaveNode3 = new LeaveNode("王五", 15);
        // 请假条首先会由 辅导员处理，然后往后传递处理
        instructor.handleRequest(leaveNode3);
        
        //请假20天的请假条
        LeaveNode leaveNode4 = new LeaveNode("赵六", 20);
        // 请假条首先会由 辅导员处理，然后往后传递处理
        instructor.handleRequest(leaveNode4);
    }
}